[Chapter 31] 31.8 Macros with the m4 Technique
Author: Bryan Costales & Eric Allman
Date: 1999-01-06T20:12:00Z

#

| Chapter 31 Defined Macros |

## 31.8 Macros with the m4 Technique

The various features of the m4 technique use uppercase single-character macro names. The complete list of them is shown in Table 31.5. Some of these are defined by using the appropriate `define` m4 command (see below). Others are predefined for you by the m4 technique. See the appropriate section reference for a full description of how to use each macro.

Table 31.5: Macros Reserved with the m4 Technique
Macro |  | Description
--- | --- | ---
`$B` | Section 31.10.5, $B | The BITNET relay
`$C` | Section 31.10.9, $C | The hostname of the DECnet relay
`$E` | Section 31.10.13, $E | X.400 relay (unused)
`$F` | Section 31.10.15, $F | FAX relay
`$H` | Section 31.10.18, $H | The mail hub
`$L` | Section 31.10.23, $L | Unknown Local User relay
`$M` | Section 31.10.25, $M | Who we are masquerading as
`$R` | Section 31.10.32, $R | The relay for unqualified names (deprecated)
`$S` | Section 31.10.34, $S | The Smart Host
`$U` | Section 31.10.37, $U | The UUCP name to override $k
`$V` | Section 31.10.39, $V | The UUCP relay (for class `$=V`)
`$W` | Section 31.10.41, $W | The UUCP relay (for class `$=W`)
`$X` | Section 31.10.43, $X | The UUCP relay (for class `$=X`)
`$Y` | Section 31.10.45, $Y | The UUCP relay for unclassified hosts
`$Z` | Section 31.10.47, $Z | The version of this m4 configuration

A few m4 macros can be defined by using the m4 `define` command. For example, here is how you define the BITNET relay with the BITNET_RELAY keyword:

>     define(`BITNET_RELAY', `host.domain')dnl

See Table 31.6 for a list of those m4 macros that can be defined. The leftmost column in that table shows the keyword to use.

Table 31.6: Macros Declared with Special m4 Names
m4 name | Macro |  | Description
--- | --- | --- | ---
BITNET_RELAY | `$B` | Section 31.10.5 | The BITNET relay
confCF_VERSION | `$Z` | Section 31.10.47 | The version of this m4 configuration
confDOMAIN_NAME | `$j` | Section 31.10.20 | Official canonical name
confMAILER_NAME | `$n` | Section 31.10.26 | Error message sender
FAX_RELAY | `$F` | Section 31.10.15 | FAX relay
LUSER_RELAY | `$L` | Section 31.10.23 | Local user relay
MAIL_HUB | `$H` | Section 31.10.18 | The mail hub

31.7 Categories of Macros |  | 31.9 Pitfalls